In a cloud computing environment, computing is delivered as a service rather than a product, whereby shared resources, software and information are provided to computers and other devices as a metered service over a network, such as the Internet. In such an environment, computation, software, data access and storage services are provided to users that do not require knowledge of the physical location and configuration of the system that delivers the services.
A cloud computing environment has a fixed number of hardware resources on which to run virtual workloads. These hardware resources are commonly referred to as “compute nodes.” In a typical cloud environment, the compute nodes may be divided into task-specific groups. For example, a set of 15 compute nodes may be divided evenly between three departments in an organization. The subdivision of compute nodes may result in the situation where one of the cloud groups runs out of a resource even the cloud environment contains available hardware (i.e., compute nodes) assigned to another group.
Currently, when a compute node fails in a cloud group, the compute node is swapped with another compute node. However, there is currently no analysis being performed as to the duration of time necessary for the newly installed compute node to continue to replace the compute node. The newly installed compute node may no longer need to continue to replace the compute node and could be utilized by another cloud group with a greater need for the resource.
Furthermore, in response to increases in the workload to be handled by a task-specific cloud group, a compute node may be added to the cloud group to assist in handling the increase in the workload. However, there may be other cloud groups that also need an additional compute node for various other reasons, such as to preemptively take over duties of a compute node that may be failing or to replace a fully failed compute node. The additional compute node is not allocated among the task-specific cloud groups based on priority or policies thereby potentially allocating the compute nodes inefficiently.
Hence, there is not currently a means for allocating a compute node among cloud groups temporarily and based on priority and policies to more efficiently utilize cloud resources.